home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
- MDIFF - MPATCH
- Release 1.50
-
-
-
-
-
-
-
-
-
-
- Un software semplice ma completo per produrre e applicare patch a
- programmi e file di dati per Dos, OS/2, Windows95 e WindowsNT.
-
-
-
-
-
-
-
-
- Manuale in lingua italiana.
-
-
-
-
-
-
-
-
-
-
-
-
- (C) 1995/96 Maurizio Giunti - Tutti i diritti riservati
-
-
-
-
-
- 1.SOMMARIO
-
-
- 1.SOMMARIO 2
-
-
- 2.GARANZIE 3
-
-
- 3.USO E DISTRIBUZIONE 3
-
-
- 4.PERCHE' 3
-
-
- 5.A COSA SERVE 3
-
-
- 6.ESEMPIO 4
-
-
- 7.DOS, OS/2, WINDOWS 95 E WINDOWS NT 4
-
-
- 8.LIMITI E BUG NOTI 4
-
-
- 9.MDIFF - MDIFF2 - MDIFFW 5
-
-
- 10.MPATCH - MPATCH2 - MPATCHW 5
-
-
- 11.MDF2EXE - MDF2EXE2 - MDF2EXEW 6
-
-
- 12.ALCUNI CONSIGLI 6
-
-
- 13.LIBRERIE PER APPLICARE PATCH 7
-
-
- 14.COME REGISTRARSI 7
-
-
- 15.COME CONTATTARE L'AUTORE 7
-
-
- 16.RINGRAZIAMENTI 8
-
-
-
-
-
- 2
-
-
-
-
-
- 2.GARANZIE
- QUESTO SOFTWARE E I FILE CHE LO ACCOMPAGNANO SONO DISTRIBUITI COSI' COME
- SONO, E SENZA GARANZIE DI FUNZIONAMENTO O QUALUNQUE ALTRA GARANZIA.
- L'unica garanzia fornita con questo software e che occupa spazio su
- disco. Non posso assolutamente garantire che funzioni perfettamente o
- rappresenti la soluzione di ogni vostro problema. Sono inoltre sicuro che
- non e un virus e non contiene (a meno che non sia stato infettato o
- modificato dopo la compilazione) Trojan-Horses, Back-Doors o altre
- diavolerie simili. In ogni caso l'autore declina ogni responsabilita
- diretta o indiretta, per eventuali danni morali o materiali derivanti
- dal suo uso.
-
- 3.USO E DISTRIBUZIONE
- Questo software appartiene allo Shareware, cio significa che chiunque puo
- liberamente distribuirlo e puo usarlo gratuitamente per un periodo di
- prova di 15 giorni. Dopo tale periodo gli utenti che continueranno ad
- usarlo devono registrare la loro copia mandando il contributo richiesto
- all'autore, Maurizio Giunti.
- Gli utenti cosi registrati riceveranno un _codice di registrazione_ che
- conterra il loro nome (o il nome della loro impresa in caso di site
- license).
- Questo software puo essere liberamente distribuito ma gratuitamente,
- salvo le spese di copia e spedizione.
- E' imperativo che il pacchetto originale che contiene il software sia
- distribuito senza alcuna modifica.
- Gli utenti registrati potranno distribuire liberamente MPATCH.EXE,
- MPATCH2.EXE e MPATCHW.EXE insieme a uno o piu file *.MDF prodotti con la
- loro copia registrata di MDIFF. Inoltre gli utenti registrati potranno
- liberamente distribuire patch auto installanti create con MDF2EXE.EXE,
- MDF2EXE2.EXE e MDF2EXEW.EXE, che contengano solo file *.MDF realizzate
- con una copia registrata di MDIFF.
- In ogni caso i file di patch *.MDF create da MDIFF possono essere
- liberamente distribuiti, l'autore di MDIFF non reclama alcun diritto su
- di essi.
-
- 4.PERCHE'
- Qualche tempo fa dovevo rilasciare una versione aggiornata di un mio
- programma: il pacchetto compresso "pesava" piu di 200 Kbyte, e sarebbe
- stato sicuramente piu conveniente per tutti aggiornare il vecchio
- eseguibile tramite una patch. Mi misi in caccia di un software che mi
- permettesse di creare e distribuire patch dei miei programmi per Dos e
- OS/2: per Dos ne ho trovati alcuni (ma non mi hanno soddisfatto per vari
- motivi), per OS/2 neanche uno! Ho quindi deciso di farmene uno
- e....eccolo qui ! 8-)
-
- 5.A COSA SERVE
- MDIFF crea un file binario di differenza tra due file. Con MPATCH e il
- vecchio file si puo ricreare il nuovo file partendo dal file di
- differenza. Cosa c'e di buono in tutto cio? Semplice: supponendo che il
- file di differenza sia piu breve del nuovo file, e piu conveniente
- distribuire solo quello invece di tutto il file, soprattutto se la
- distribuzione avviene via modem.
-
-
- 3
-
-
-
-
- 6.ESEMPIO
- A titolo di esempio ho messo in due directory chiamate OLD e NEW
- rispettivamente MDIFF.EXE release 1.45a (una release intermedia sulla
- quale stavo lavorando) e MDIFF.EXE release 1.45 definitiva:
-
- Directory of OLD\*.EXE
- MDIFF.EXE 46602 16/08/95 21.01
-
- Directory of NEW\*.EXE
- MDIFF.EXE 46602 21/08/95 00.45
-
- C:\>mdiff OLD\MDIFF.EXE NEW\MDIFF.EXE
- MDIFF V1.50 - MDF file generator (Dos)
- (C) Copyright 1995/96 Maurizio Giunti
-
- Registered to: MAURIZIO GIUNTI
-
- OLD\MDIFF.EXE,NEW\MDIFF.EXE => MDIFF.MDF
- Working...(100%) MDF size: 1215 bytes Rate: 2%
- <Done!>
-
- Directory of *.MDF
- MDIFF.MDF 1215 7/10/95 13.43
-
- Adesso possiamo applicare la patch MDIFF.MDF al vecchio eseguibile per
- ricostruire quello nuovo:
-
- C:\>mpatch MDIFF.MDF old\MDIFF.EXE
- MPATCH V1.50 - MDF file applier (Dos)
- (C) Copyright 1995/96 Maurizio Giunti
-
- MDF file produced by: MAURIZIO GIUNTI
-
- Working: 0% |###########| 100%
- <Done!>
-
- Ottenendo il seguente file:
-
- Directory of *.EXE
- MDIFF.EXE 46602 21/08/95 0.41
-
- che e identico al file MDIFF.EXE che della directory NEW.
-
- 7.DOS, OS/2, WINDOWS 95 E WINDOWS NT
- MDIFF e MPATCH per Dos, OS/2 e Windows sono ottenuti tramite la
- compilazione dei medesimi sorgenti, quindi non c'e alcuna differenza
- nella funzione e nell'uso di tali programmi sui vari sistemi operativi.
- Inoltre i files *.MDF prodotti con MDIFF per Dos possono essere
- utilizzati con MPATCH per OS/2 o Windows32 e viceversa.
-
- 8.LIMITI E BUG NOTI
- MDIFF non puo trattare files piu ampi di 16 Megabyte o piu piccoli di 20
- volte la lunghezza del chunk settata.
-
-
- 4
-
-
-
-
- Dato che MDIFF per OS/2, e ottenuto tramite una compilazione diretta dei
- sorgenti di MDIFF per Dos, non e in grado di trattare gli attributi
- estesi, quindi si limitera ad ignorarli.
- Inoltre se si costruisce un file di patch con MDIFF per Dos o OS/2 e si
- applica con MPATCH per Windows32 (o viceversa) il file che si otterra
- avra la data errata; cio dipende da una diversa implementazione della
- funzione utime() nei compilatori Borland e Microsoft.
-
- 9.MDIFF - MDIFF2 - MDIFFW
- Il programma MDIFF si occupa di comparare due files e di immagazzinare le
- differenze tra di essi in un terzo file che, generalmente, e molto piu
- compatto. Vediamo come si usa:
-
- MDIFF [-C<c>] [-R<r>] [-F<f>] [-S] [-Z] [-P<pwd>] <OldFile> <NewFile>
- [<MDFfile>]
-
- <OldFile> ovviamente e il nome della versione precedente del file da
- comparare, mentre <NewFile> e il nome della versione attuale. Se
- necessario si puo specificare il nome del file di differenza da creare
- <MDFfile>, altrimenti MDIFF crea un file che ha lo stesso nome di
- <NewFile> ma estensione ".MDF". Per cercare le parti simili nei files,
- MDIFF si serve di una stringa base di lunghezza predefinita detta chunk.
- La lunghezza del chunk e per default di 16 byte ma puo essere cambiata
- (in un range 4-256) con lo switch -C seguito dalla lunghezza voluta.
- Quando MDIFF perde il sincronismo tra i due files che sta confrontando,
- cerca di ritrovarlo scandendo il vecchio file alla ricerca del chunk che
- sta elaborando. Tale ricerca viene effettuata, in un intorno dell'ultimo
- chunk trovato, nel range definito dallo switch -R. Per default tale range
- e di 8 blocchi di 512 byte, ma puo variare tra 1 e 16. Se tale ricerca
- fallisce MDIFF cerca di forzare il sincronismo cercando in un raggio piu
- ampio di quello definito solitamente ampio 1/16 della lunghezza del file.
- Questa seconda ricerca puo essere disabilitata o il suo range puo essere
- cambiato tramite lo switch -F. Specificando lo switch -S, alla fine
- dell'operazione, MDIFF fornira alcuni dati sulla composizione del file
- di differenza.
- E' inoltre possibile, tramite lo switch -Z, inserire nel file di
- differenza un breve commento (al massimo 2 Kbyte), che sara visualizzato
- durante l'applicazione della patch da parte di MPATCH. Il commento viene
- prelevato direttamente dallo standard input e quindi puo essere o
- digitato o prelevato da un file tramite l'apposito comando di redirezione
- "<".
- Tramite lo switch -P si puo proteggere la patch con una password (<pwd>):
- chi non conosce tale password non potra applicare la patch.
-
- 10.MPATCH - MPATCH2 - MPATCHW
- MDIFF sarebbe un programma inutile se non esistesse MPATCH. Infatti
- MPATCH si occupa, dati <OldFile> e <MDFfile>, di ricreare <NewFile>.
- Vediamo come si usa:
-
- MPATCH [-P<pwd>] <MDFfile> [<OldFile> [<NewFile>]]
-
- L'unico parametro necessario e il nome del file di differenza <MDFfile>
- perche esso contiene i nomi degli altri due file, ma e possibile
- modificare tale impostazione semplicemente specificando i nomi voluti
-
- 5
-
-
-
-
- nell'esatto ordine. MPATCH ha il solo switch -P che permette di
- specificare una eventuale password necessaria per applicare la patch.
- In caso di errore MPATCH ritorna un errorlevel che deve essere
- interpretato secondo la seguente tabella:
- Codice Descrizione
- 0 "OK!"
- 1 "Out of memory !"
- 2 "Can't open MDF file !"
- 3 "Invalid MDF file !"
- 4 "MDF file version mismatch !"
- 5 "UNREGISTERED !"
- 6 "Bad or incorrect OLD file !"
- 7 "Can't open OLD file !"
- 8 "Can't create NEW file !"
- 9 "General failure: NEW file corrupted !"
- 10 "OLD and NEW can't be the same file !"
- 11 "NEW file was already patched ! "
- 12 "Wrong password !"
-
- 11.MDF2EXE - MDF2EXE2 - MDF2EXEW
- MDF2EXE si occupa di trasformare un file di patch *.MDF creato con MDIFF
- in un file ESEGUIBILE autoinstallante per Dos (MDF2EXE), OS/2 (MDF2EXE2)
- o Windows95/WindowsNT (MDF2EXEW).
- Il file cosi creato conterra al suo interno il programma di installazione
- e un certo numero di file di patch (al massimo 127).
- La sintassi per creare una patch autoinstallante e:
-
- MDF2EXE <mdf_file 1> [<mdf_file 2>....<mdf_file n>] <exe_file>
-
- I vari <mdf_file x> possono contenere anche wildcard, in questo caso
- MDF2EXE crchera' automaticamente i files da inserire.
- Il file eseguibile creato (che DEVE avere estensione .EXE) potra essere
- avviato senza alcun parametro sulla linea di comando e cerchera
- automaticamente i file da aggiornare. Opzionalmente puo essere utilizzato
- lo switch -P per specificare una password oppure gli switch -V o -L per
- visualizzare la lista delle patch contenute nel file.
- Un'unica nota: non comprimete le patch autoinstallanti con PKLite, LZExe
- o altri software simili, altrimenti esse cesseranno di funzionare.
-
- 12.ALCUNI CONSIGLI
- Il metodo ottimale per costruire un file di differenza sarebbe quello di
- ricercare per tutto il vecchio file i chunks che compongono il nuovo
- file; ovviamente tale metodo sarebbe di una lentezza esasperante.
- L'algoritmo su cui e basato MDIFF rappresenta un compromesso tra
- risultato e velocita di esecuzione, per questo e talvolta opportuno
- regolare i parametri di funzionamento di MDIFF tramite gli appositi
- switch. Vediamo come comportarsi in alcune situazioni tipiche:
- 1. File con pochissime modifiche: e' opportuno utilizzare un chunk molto
- ampio (32, 64 o piu) in modo da ridurre il piu possibile le dimensioni
- del file di differenza, soprattutto se si sta lavorando con files di
- testo o con archivi.
- 2. File di testo: di solito un chunk di dimensione 32 e il piu indicato, e
- opportuno provare a diminuire o togliere il sincronismo forzato
- tramite lo switch -F.
-
- 6
-
-
-
-
- 3. File eseguibili molto ampi: spesso si ottengono risultati migliori
- allargando il range di ricerca del sincronismo tramite lo switch -R.
- Un ultimo consiglio: non attendetevi miracoli da MDIFF. Se i due file
- confrontati sono molto dissimili il file di patch risultera molto ampio.
- In questi casi c'e ben poco da fare, bisogna rassegnarsi a distribuire il
- nuovo file interamente. MDIFF e realmente utile solo se il numero delle
- modifiche apportate ai file non e troppo grande.
-
- 13.LIBRERIE PER APPLICARE PATCH
- Nel pacchetto di distribuzione di MDIFF troverete un set di librerie per
- il linguaggio C per realizzare programmi per applicare patch. Queste
- librerie funzionano soltanto con file di patch *.MDF creati con una copia
- registrata di MDIFF. Cio non significa che queste librerie non siano
- perfettamente funzionanti, significa soltanto che per volonta dell'autore
- le librerie non possono applicare patch prodotte da copie non registrate
- di MDIFF.
-
- 14.COME REGISTRARSI
- Registrando MDIFF otterrete un _codice di registrazione_ che contiene il
- vostro nome (o il nome della vostra impresa in caso di site license).
- Producendo una patch con una copia registrata di MDIFF nel file *.MDF
- risultante verra incluso tale nome, in questo modo al momento in cui la
- patch verra applicata MPATCH potra mostrare il nome di chi ha realizzato
- la patch stessa.
- Inoltre gli utenti registrati sono autorizzati a distribuire liberamente
- MPATCH.EXE, MPATCH2.EXE e MPATCHW.EXE insieme alle patch *.MDF da essi
- prodotte, e a distribuire ogni patch auto installante che contenga solo
- file *.MDF prodotti con la loro copia registrata di MDIFF.
- Per registrare MDIFF dovrete utilizzare il programma REGISTER.EXE che
- troverete nel pacchetto di distribuzione. REGISTER.EXE e una applicazione
- per Windows scritta da Grzegorz (Greg) Kochaniak che si occupa di
- raccogliere interattivamente tutte le informazioni necessarie per
- richiedere la registrazione di MDIFF, e a prepararle per spedirle via
- Posta, TeleFAX o e-mail alla Kagi Shareware. Se non siete utenti Windows
- contattatemi.
- Per qualunque informazioni sui servizi di Kagi Shareware vi invito a
- leggere il file KAGI.TXT.
-
- 15.COME CONTATTARE L'AUTORE
- Se avete qualche domanda potete contattarmi ai seguenti indirizzi:
-
- Posta:
- Maurizio Giunti
- Via G.B. Foggini, 24
- 50142 Firenze (FI)
- ITALY
-
- e-mail:
- Fidonet: 2:332/102.3
- Internet: giunti@kagi.com
- giunti@abeline.it
- giunti@statsun.ds.unifi.it
-
-
-
- 7
-
-
-
-
- 16.RINGRAZIAMENTI
- Vorrei brevemente ringraziare gli amici che mi hanno aiutato nello
- sviluppo di questo software e della documentazione allegata, o che si
- sono coraggiosamente offerti come beta-testers. In ordine alfabetico:
-
-
- Mauricio Mello de Andreade
-
- Andrea Baitelli
-
- Silvia Borri
-
- Juan Jose Comellas
-
- Filippo Dini
-
- Fabrizio Fioravanti
-
- Cristiano Guidoccio
-
- Giovanni Lopes Pegna
-
- Marco Maccaferri
-
- Marco Menichelli
-
- Giuseppe Scarpi
-
- Toni Tatafiore
-
- Duncan Wilcox
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8
-